package com.yang.chain_design_pattern.impl;

import org.springframework.util.CollectionUtils;

import java.util.ArrayList;
import java.util.List;

/**
 * @Description: 处理职责链类
 * @Author: 杨 强
 * @CreateTime: 2022-11-01 16:33
 */
public class HandlerChain {
    /**
     * 所有的职责处理器
     */
    private List<IHandler> handlers = new ArrayList<>();

    /**
     * 为职责链添加处理器
     * @param handler 处理器
     */
    public void addHandle(IHandler handler){
        this.handlers.add(handler);
    }

    /**
     * 职责链开始处理请求
     * @param type 请求参数
     */
    public void handle(String type){
        if (CollectionUtils.isEmpty(handlers)){
            return;
        }
        for (IHandler handler : handlers) {
            handler.handle(type);
        }
    }
}
